package com.milling.business.service;

import java.util.List;
import java.util.Map;

import com.milling.business.domain.WmsNeedleCache;

/**
 * 配针缓存区Service接口
 *
 * @author X
 * @date 2025-02-04
 */
public interface IWmsNeedleCacheService
{
    /**
     * 查询配针缓存区
     *
     * @param needleId 配针缓存区主键
     * @return 配针缓存区
     */
    public WmsNeedleCache selectWmsNeedleCacheByNeedleId(Long needleId);

    /**
     * 查询配针缓存区列表
     *
     * @param wmsNeedleCache 配针缓存区
     * @return 配针缓存区集合
     */
    public List<WmsNeedleCache> selectWmsNeedleCacheList(WmsNeedleCache wmsNeedleCache);

    /**
     * 新增配针缓存区
     *
     * @param wmsNeedleCache 配针缓存区
     * @return 结果
     */
    public int insertWmsNeedleCache(WmsNeedleCache wmsNeedleCache);

    /**
     * 修改配针缓存区
     *
     * @param wmsNeedleCache 配针缓存区
     * @return 结果
     */
    public int updateWmsNeedleCache(WmsNeedleCache wmsNeedleCache);

    /**
     * 批量删除配针缓存区
     *
     * @param needleIds 需要删除的配针缓存区主键集合
     * @return 结果
     */
    public int deleteWmsNeedleCacheByNeedleIds(Long[] needleIds);

    /**
     * 删除配针缓存区信息
     *
     * @param needleId 配针缓存区主键
     * @return 结果
     */
    public int deleteWmsNeedleCacheByNeedleId(Long needleId);

    /**
     * 更新配针盘位置状态  暂时废除
     */
    public void syncNeeldStatusA();

    /**
     * 同步配针大托盘数据到配针缓存区
     */
    public void sysncNeedleStatus();

    public List<Map> selectNeedleStock(WmsNeedleCache wmsNeedleCache);

    /**
     * 验证和修复状态不一致问题
     */
    public void validateAndFixStatusInconsistency();

}
